/**
 * 
 */
package sistema;

import interfaces.Atividade;

import java.util.Collection;

import objetos.AtividadeDePedirItem;
import objetos.HistoricoDeAtividades;
import objetos.Item;
import objetos.Mensagem;
import objetos.Usuario;

/**
 * @author Filipe
 * Classe que lida com com a postagem de pedidos e repostagem de pedidos
 */
public class GerenciadorPedidos {
	/**
	 * Metodo que publica um pedido
	 * @param user - Usuario que deseja publicar o pedido
	 * @param nomeItem - Nome do item desejado
	 * @param descricaoItem - descricao do item desejado
	 * @return retorna um id relativo a atividade de pedir item
	 * @throws Exception
	 */
	public String publicarPedido(Usuario user,String nomeItem,String descricaoItem) throws Exception{
		Atividade atividade = new AtividadeDePedirItem(user.getNome(), nomeItem, descricaoItem);
		HistoricoDeAtividades.getInstance().addAtividades(user,atividade);
		return atividade.getIdAtividade();
	}
	/**
	 * Republica um pedido de um amigo em seu historico
	 * @param user - Usuario que deseja republicar o pedido de um amigo	 
	 * @param idPedido - id de atividade de pedir item
	 * @throws Exception
	 */
	public void republicarPedido(Usuario user,String idPedido) throws Exception{
		Atividade atividade = null;
		HistoricoDeAtividades.getInstance();
		Collection<Atividade> todasAtividades = HistoricoDeAtividades.getTodasAtividades().values();
		for (Atividade ativ: todasAtividades){
			if(ativ.getIdAtividade().equals(idPedido)){
				atividade = ativ;
			}
		}
		HistoricoDeAtividades.getInstance().addAtividades(user, atividade);
	}
	
	public void oferecerPedido(Usuario usuario, Usuario publicador, Item item) throws Exception{
		String assunto = ("O usuário " +  usuario.getNome() + " ofereceu o item " +  item.getNome());
		String corpo = ("Item oferecido: " + item.getNome()  + " - " + item.getDescricao());
		Mensagem mensagem = new Mensagem(assunto, corpo, publicador, usuario);
		GerenciadorDeMensagens.getInstance().enviarMensagem(mensagem);
	}
}
